package 力扣算法练习.main1.newPart1;

public class day12 {
    //https://www.nowcoder.com/practice/98dc82c094e043ccb7e0570e5342dd1b?tpId=37&tqId=21298&ru=/exam/oj
    private static int same(String a,String b){
        char[] ach=a.toCharArray();
        char[] bch=b.toCharArray();
        int temp=0,result=0;
        for(int i=0;i<ach.length;i++){
            int tempi=i;
            for(int j=0;j<bch.length;j++){
                if(ach[i]==bch[j]){
                    int tempj=j;
                    while(tempi<ach.length&&tempj<bch.length&&ach[tempi]==bch[tempj]){
                        temp++;
                        tempi++;
                        tempj++;
                    }
                    if(temp>result){
                        result=temp;
                    }
                    tempi=i;
                    temp=0;
                }
            }
        }
        return result;
    }
    //题解
    private static int same2(String a,String b){
        String s1 = a.length()<b.length() ? a:b;  // 短的字符串
        String s2 = a.length()<b.length() ? b:a;  // 长的字符串
        int n = 0;
        for(int i=0;i<s1.length();i++){              // 头指针从第一位开始递增
            for(int j=s1.length();j>i;j--){          // 尾指针从最后一位开始缩减
                if(s2.contains(s1.substring(i,j))){  // 第一次发现合集的长度一定是最大的
                    n = j-i>n ? j-i:n;               // 取每一次比较的最大值
                    break;                           // 已经是最大的，无需再进行后续的操作
                }
            }
        }
        System.out.println(n);
        return n;
    }

    public static void main(String[] args) {
        String a="awerw";
        String b="dfajawwerw";
//        same2(a,b);
        same(a,b);
    }
}
